#include "newVar.h"

using namespace std;

double * newDoubleMat2D1DA(int nRow,int nCol)
{
    // 固定大小的二维数组，理论上是以二维的方式存储，实际上是一维，所以没法用，这里不用了。
    /*
    void test(){
        double* mat;
        mat=newDoubleMat2D1DA(4,5);
        for(int p=0;p<4;p++)
            for(int q=0;q<5;q++)
                *(mat+p*q)=2;
        return;
    }
    */
    double *vec=new double[nRow*nCol];
    double (*mat)[nCol]=(double(*)[nCol])vec;
    return *mat;
}

double *newDoubleMat2D1DB(int nRow,int nCol)
{
    double *mat=new double[nRow*nCol];
    return mat;
}

double **newDoubleMat2D(int nCol,int nRow)
{
    // 动态二维数组，可以正常使用。
    /*
    测试代码：
    void test(){
        double **mat;
        mat=newDoubleMat2D(4,5);
        for(int p=0;p<4;p++)
            for(int q=0;q<5;q++)
                mat[p][q]=2;
        return;
    }
    删除：
    for(int p=0;p<nRow;p++)
        delete [] mat[p];
    delete mat;
    */
    double **mat=new double*[nCol];
    for(int p=0;p<nCol;p++){
        mat[p]=new double[nRow];
    }
    return mat;
}

